# -*- coding: utf-8 -*-
import matplotlib.pyplot as mpl

def kmers(s,k):
    '''s - строка, k - размер камера
    Создание словаря камеров, их количество'''

    Length = len(s)
    Dict_kmers_num = {}

    for i in xrange(Length - k + 1):

        if s[i:i+k ] in Dict_kmers_num.keys():
            Dict_kmers_num[s[i:i+k ]] += 1

        else:
            Dict_kmers_num[s[i:i+k ]] = 1

    return Dict_kmers_num


def out_kmers(Dict_kmers_num):
    '''Dict_kmers_stat - словарь камеров(ключ), количество их в строке(значение)
    Вывод в файл таблицы'''

    out_kmers_num = 'G:\out_kmers_stat.txt'

    fout = open(out_kmers_num,'w')

    for kmer in Dict_kmers_num.keys():
        fout.write('%s_____%i\n'%(kmer,Dict_kmers_num[kmer]))

    fout.close()


def kmer_plot(Dict_kmers_num,a):
    '''Dict_kmers_num - словарь камеров(ключ), количество их в строке(значение)
    a - до какого количества собирать статистику'''

    Dict_kmers_stat = {}                                                        #словарь: количество камеров, повторяющихся i раз - значение, i - ключ
    for i in xrange(1,a+1):                                                     #цикл по количеству повторяющихся камеров
        Dict_kmers_stat[i] = 0

        for kmer in Dict_kmers_num.keys():                                      #
                                                                                #цикл по камерам, которые повторяются i раз
            if Dict_kmers_num[kmer] == i:                                       #
                Dict_kmers_stat[i] += 1
    print Dict_kmers_stat.items()
    mpl.bar(Dict_kmers_stat.keys(),Dict_kmers_stat.values())
  #  mpl.plot(Dict_kmers_stat.keys(),Dict_kmers_stat.values(),'ro')
    mpl.grid(True)
    mpl.show()



in_kmers_stat = 'G:\outf.txt'
fin = open(in_kmers_stat,'r')
s_kmers = fin.readline()
k = int(input(u'размер камера'))
a = int(input(u'количество сравниваемых'))
Res = kmers(s_kmers,k)
out_kmers(Res)
kmer_plot(Res,a)




